package entity

//dashboard面板数据
type Info struct {
	BlockHeight         int64   `json:"blockHeight"`
	TransactionNum      int64   `json:"transactionNum"`
	TransactionTodayNum int64   `json:"transactionTodayNum"`
	Timestamp           int64   `json:"timestamp"`
	CurrentTimestamp    int64   `json:"currentTimestamp"`
	NodeNum             int     `json:"nodeNum"`
	ChannelName         string  `json:"channelName"`
	NodeList            []Node  `json:"nodeList"`
	EventList           []Event `json:"eventList"`
}

//区块链节点属性
type Node struct {
	MSPID    string `json:"MSPID" bson:"MSPID"`
	Url      string `json:"url" bson:"url"`
	NodeType string `json:"nodeType" bson:"nodeType"`
	Name     string `json:"name" bson:"name"`
}

//图表数据格式
type ChartData struct {
	Date string `json:"date"`
	Num  int    `json:"num"`
}

//事件数据结构
type Event struct {
	Num       int64  `json:"num" bson:"num"`
	Type      string `json:"type" bson:"type"`
	BlockNum  uint64 `json:"blockNum" bson:"blockNum"`
	Timestamp int64  `json:"timestamp" bson:"timestamp"`
	SourceURL string `json:"sourceURL" bson:"sourceURL"`
	NodeName  string `json:"nodeName" bson:"nodeName"`
	EventName string `json:"eventName" bson:"eventName"`
	Chaincode string `json:"chaincode" bson:"chaincode"`
	ChannelId string `json:"channelId" bson:"channelId"`
}

//链码数据
type Chaincode struct {
	Name     string `json:"name"`
	Sequence int64  `json:"sequence"`
	Version  string `json:"version"`
}

const (
	NODE_TYPE_PEER       string = "PEER"
	NODE_TYPE_ORDER      string = "ORDERER"
	EVENT_TYPE_BLOCK     string = "BLOCK"
	EVENT_TYPE_CHAINCODE string = "CHAINCODE"
)
